package com.weihui.jxc.view;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import com.weihui.jxc.model.Operator;

import java.awt.Toolkit;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.ImageIcon;
import javax.swing.JDesktopPane;

import java.awt.Color;
import javax.swing.SwingConstants;
import javax.swing.JLabel;
import java.awt.Font;
/**
 * 主界面
 * @author xiaowei                                                                                                       
 *
 */
public class MainFrame extends JFrame {
	private static MainFrame mainFrame = null;
    public static String username = null;//保存登录后的用户名
    public static Operator operator = null;//保存登录后的数据
	private JPanel contentPane;
    private JDesktopPane desktopPane;//可以作为桌面，停靠子窗口
	
	/**
	 * 初始化
	 * @return
	 */
    public static MainFrame getMainFrame() {
    	if(mainFrame==null) {
    		mainFrame = new MainFrame();
    	}
    	return mainFrame;
    }
	/**
	 * 初始化视图
	 */
	public MainFrame() {
		setIconImage(Toolkit.getDefaultToolkit().getImage(MainFrame.class.getResource("/images/logo-s.png")));//icon
		setTitle("企业进销存管理系统");//标题
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//标题上的开关按钮
		//锁定视窗
		setResizable(false);
		//获取屏幕的尺寸信息
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		setBounds(screenSize.width/6, screenSize.height/6, screenSize.width*2/3, screenSize.height*2/3);//设置窗体大小
		
		JMenuBar menuBar = new JMenuBar();
		setJMenuBar(menuBar);
		

		
//============================================
		JMenu mnNewMenu = new JMenu("基础信息管理");
		mnNewMenu.setForeground(new Color(0, 153, 255));
		mnNewMenu.setIcon(new ImageIcon(MainFrame.class.getResource("/images/info.png")));
		
		JMenuItem mntmNewMenuItem = new JMenuItem("客户信息管理");
		mntmNewMenuItem.setIcon(new ImageIcon(MainFrame.class.getResource("/images/custormer.png")));
		//给客户信息管理设置点击事件
		mntmNewMenuItem.addActionListener(MainAction.clickCustomerInfoManager());
		
		JMenuItem mntmNewMenuItem_1 = new JMenuItem("商品信息管理");
		mntmNewMenuItem_1.setIcon(new ImageIcon(MainFrame.class.getResource("/images/商品信息.png")));
		//给商品信息管理设置点击事件
		mntmNewMenuItem_1.addActionListener(MainAction.clickGoodsManager());
		
		JMenuItem mntmNewMenuItem_2 = new JMenuItem("供应商信息管理");
		mntmNewMenuItem_2.setIcon(new ImageIcon(MainFrame.class.getResource("/images/供应商.png")));
		//给供应商信息管理设置点击事件
		mntmNewMenuItem_2.addActionListener(MainAction.clickCustomerInforManager());
		
		JMenu mnNewMenu_1 = new JMenu("进货管理");
		mnNewMenu_1.setForeground(new Color(0, 153, 255));
		mnNewMenu_1.setIcon(new ImageIcon(MainFrame.class.getResource("/images/modeling_inventory.png")));
		
		JMenuItem mntmNewMenuItem_3 = new JMenuItem("进货管理");
		mntmNewMenuItem_3.setIcon(new ImageIcon(MainFrame.class.getResource("/images/进货.png")));
		//给进货设置点击事件
		mntmNewMenuItem_3.addActionListener(MainAction.clickInportInforManager());
		
		JMenuItem mntmNewMenuItem_4 = new JMenuItem("出库管理");
		mntmNewMenuItem_4.setIcon(new ImageIcon(MainFrame.class.getResource("/images/退货.png")));
		//给出库设置点击事件
		mntmNewMenuItem_4.addActionListener(MainAction.clickOutport());
				
				
		JMenu mnNewMenu_2 = new JMenu("销售管理");
		mnNewMenu_2.setForeground(new Color(0, 153, 255));
		mnNewMenu_2.setIcon(new ImageIcon(MainFrame.class.getResource("/images/sales.png")));
		
		JMenuItem mntmNewMenuItem_5 = new JMenuItem("销售单管理");
		mntmNewMenuItem_5.setIcon(new ImageIcon(MainFrame.class.getResource("/images/销售订单.png")));
		JMenuItem mntmNewMenuItem_6 = new JMenuItem("销售退货");
		mntmNewMenuItem_6.setIcon(new ImageIcon(MainFrame.class.getResource("/images/销售退货.png")));
		
		
		JMenu mnNewMenu_3 = new JMenu("查询统计");
		mnNewMenu_3.setForeground(new Color(0, 153, 255));
		mnNewMenu_3.setIcon(new ImageIcon(MainFrame.class.getResource("/images/query.png")));
		
		JMenuItem mntmNewMenuItem_7 = new JMenuItem("客户查询");
		mntmNewMenuItem_7.setIcon(new ImageIcon(MainFrame.class.getResource("/images/操作员.png")));
		//给“客户查询”绑定点击事件
		mntmNewMenuItem_7.addActionListener(MainAction.clickCustomerInforSearch());
		
		JMenuItem mntmNewMenuItem_8 = new JMenuItem("供应商查询");
		//给“客户查询”绑定点击事件
		mntmNewMenuItem_8.addActionListener(MainAction.clickProviderInforSearch());
		mntmNewMenuItem_8.setIcon(new ImageIcon(MainFrame.class.getResource("/images/供应商.png")));
		
		JMenuItem mntmNewMenuItem_9 = new JMenuItem("商品查询");
		//给“客户查询”绑定点击事件
		mntmNewMenuItem_9.addActionListener(MainAction.clickGoodsInforSearch());
		
		mntmNewMenuItem_9.setIcon(new ImageIcon(MainFrame.class.getResource("/images/商品信息.png")));
		JMenuItem mntmNewMenuItem_10 = new JMenuItem("销售查询");
		mntmNewMenuItem_10.setIcon(new ImageIcon(MainFrame.class.getResource("/images/销售订单.png")));
		JMenuItem mntmNewMenuItem_11 = new JMenuItem("销售退货查询");
		mntmNewMenuItem_11.setIcon(new ImageIcon(MainFrame.class.getResource("/images/销售退货.png")));
		JMenuItem mntmNewMenuItem_12 = new JMenuItem("入库查询");
		mntmNewMenuItem_12.setIcon(new ImageIcon(MainFrame.class.getResource("/images/库存.png")));
		//给进货设置点击事件
		mntmNewMenuItem_12.addActionListener(MainAction.clickInportInforSearch());
		
		JMenuItem mntmNewMenuItem_13 = new JMenuItem("出库查询");
		mntmNewMenuItem_13.setIcon(new ImageIcon(MainFrame.class.getResource("/images/退货.png")));
		//给进货设置点击事件
		mntmNewMenuItem_13.addActionListener(MainAction.clickOutportInforSearch());
		
		
		JMenu mnNewMenu_4 = new JMenu("库存管理");
		mnNewMenu_4.setIcon(new ImageIcon(MainFrame.class.getResource("/images/storage.png")));
		mnNewMenu_4.setForeground(new Color(0, 153, 255));
		
		JMenuItem mntmNewMenuItem_14 = new JMenuItem("库存盘点");
		mntmNewMenuItem_14.setIcon(new ImageIcon(MainFrame.class.getResource("/images/库存.png")));
		JMenuItem mntmNewMenuItem_15 = new JMenuItem("价格调整");
		mntmNewMenuItem_15.setIcon(new ImageIcon(MainFrame.class.getResource("/images/价格 .png")));
		
		JMenu mnNewMenu_5 = new JMenu("系统管理");
		mnNewMenu_5.setIcon(new ImageIcon(MainFrame.class.getResource("/images/setting.png")));
		mnNewMenu_5.setForeground(new Color(0, 153, 255));
		JMenuItem mntmNewMenuItem_16 = new JMenuItem("操作员管理");
		//给进货设置点击事件
		mntmNewMenuItem_16.addActionListener(MainAction.clickOperaterInforManager());
		
		mntmNewMenuItem_16.setIcon(new ImageIcon(MainFrame.class.getResource("/images/操作员.png")));
		
		JMenuItem mntmNewMenuItem_18 = new JMenuItem("更改密码");
		mntmNewMenuItem_18.setIcon(new ImageIcon(MainFrame.class.getResource("/images/更改密码.png")));
		//给进货设置点击事件
		mntmNewMenuItem_18.addActionListener(MainAction.clickChangePwdInforManager());
		//==================================
		//权限处理
		if(operator!=null) {
			
			/**
			 * 基础信息的权限所有
			 */			
			if(operator.getPower().equals("超级管理员") || operator.getPower().equals("普通管理员")) {	
				menuBar.add(mnNewMenu);
				mnNewMenu.add(mntmNewMenuItem);
				mnNewMenu.add(mntmNewMenuItem_1);
				mnNewMenu.add(mntmNewMenuItem_2);
			}
			/**
			 * 进货管理的权限所有
			 */
			if(operator.getPower().equals("超级管理员") || operator.getPower().equals("普通管理员")|| operator.getPower().equals("采购人员")) {

				menuBar.add(mnNewMenu_1);
				
				mnNewMenu_1.add(mntmNewMenuItem_3);
				
				mnNewMenu_1.add(mntmNewMenuItem_4);
			} 
			/**
			 * 销售管理的权限所有
			 */
			if(operator.getPower().equals("超级管理员") || operator.getPower().equals("普通管理员")|| operator.getPower().equals("销售人员")) {
				menuBar.add(mnNewMenu_2);
				
				mnNewMenu_2.add(mntmNewMenuItem_5);
				
				mnNewMenu_2.add(mntmNewMenuItem_6);
			}
			/**
			 * 查询
			 */
			if(operator.getPower().equals("超级管理员") || operator.getPower().equals("普通管理员")|| operator.getPower().equals("采购人员")|| operator.getPower().equals("销售人员")|| operator.getPower().equals("仓库人员")) {

				menuBar.add(mnNewMenu_3);
				if(operator.getPower().equals("超级管理员") || operator.getPower().equals("普通管理员")) {
					mnNewMenu_3.add(mntmNewMenuItem_7);
					mnNewMenu_3.add(mntmNewMenuItem_8);
					mnNewMenu_3.add(mntmNewMenuItem_9);
					mnNewMenu_3.add(mntmNewMenuItem_10);
					mnNewMenu_3.add(mntmNewMenuItem_11);
					mnNewMenu_3.add(mntmNewMenuItem_12);
					mnNewMenu_3.add(mntmNewMenuItem_13);
				}else if(operator.getPower().equals("采购人员")) {
					mnNewMenu_3.add(mntmNewMenuItem_7);
					mnNewMenu_3.add(mntmNewMenuItem_9);
				}else if(operator.getPower().equals("销售人员")) {
					mnNewMenu_3.add(mntmNewMenuItem_10);
					mnNewMenu_3.add(mntmNewMenuItem_11);
				}else if(operator.getPower().equals("仓库人员")) {
					mnNewMenu_3.add(mntmNewMenuItem_12);
					mnNewMenu_3.add(mntmNewMenuItem_13);
				}
			}
			/**
			 * 库存
			 */
			if(operator.getPower().equals("超级管理员") || operator.getPower().equals("普通管理员")|| operator.getPower().equals("仓库人员")) {
				menuBar.add(mnNewMenu_4);
				if(operator.getPower().equals("超级管理员") || operator.getPower().equals("普通管理员")) {
					mnNewMenu_4.add(mntmNewMenuItem_14);
					mnNewMenu_4.add(mntmNewMenuItem_15);
				}else if(operator.getPower().equals("仓库人员")) {
					mnNewMenu_4.add(mntmNewMenuItem_14);
				}
			}
			/**
			 * 系统管理
			 */
			if(operator.getPower().equals("超级管理员") || operator.getPower().equals("普通管理员")|| operator.getPower().equals("采购人员")|| operator.getPower().equals("销售人员")|| operator.getPower().equals("仓库人员")) {
				menuBar.add(mnNewMenu_5);
				if(operator.getPower().equals("超级管理员")) {
					mnNewMenu_5.add(mntmNewMenuItem_16);
					//mnNewMenu_5.add(mntmNewMenuItem_17);
					mnNewMenu_5.add(mntmNewMenuItem_18);
				}else if(operator.getPower().equals("仓库人员")) {
					mnNewMenu_5.add(mntmNewMenuItem_18);
				}
			}
		}else {
			JOptionPane.showMessageDialog(null, "非法用户！","警告",JOptionPane.WARNING_MESSAGE);
			System.exit(0);//退出
		}

		
		desktopPane = new JDesktopPane();
		desktopPane.setBackground(new Color(0, 153, 255));
		desktopPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		desktopPane.setLayout(new BorderLayout(0, 0));//设置内部布局结构
		
		//设置拖动模式
		desktopPane.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);
		setContentPane(desktopPane);
		
		JLabel lblNewLabel = new JLabel("欢迎使用企业进销存管理系统！");
		lblNewLabel.setBackground(Color.GRAY);
		lblNewLabel.setIcon(new ImageIcon(MainFrame.class.getResource("/images/管理系统 (1).png")));
		lblNewLabel.setFont(new Font("楷体", Font.BOLD, 28));
		lblNewLabel.setForeground(Color.WHITE);
		lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
		desktopPane.add(lblNewLabel, BorderLayout.CENTER);
		 System.out.println("登陆后的数据=="+operator);
	}

	/**
     * 访问登录后的用户
     * @return
     */
    public static Operator getLoginedUser() {
    	System.out.print("登陆信息："+operator);
    	return operator;
    }
}